import request from './request'

// --- 用户侧 API ---

/**
 * [用户] 提交预定申请 (创建一个待审核的订单)
 * @param {object} orderData - 包含 animalId, consignee, phone 等信息
 */
export const createOrderApi = (orderData) => {
    return request({
        url: '/api/order/create',
        method: 'post',
        data: orderData
    })
}

/**
 * [用户] 分页获取自己的订单列表
 * @param {object} params - 包含 current, pageSize 等分页信息
 */
export const listMyOrderByPageApi = (params) => {
    return request({
        url: '/api/order/my/list/page',
        method: 'post',
        data: params
    })
}

/**
 * [用户/管理员] 获取单个订单的详细信息
 * @param {number} id - 订单ID
 */
export const getOrderDetailApi = (id) => {
    return request({
        url: '/api/order/get/vo',
        method: 'get',
        params: { id }
    })
}


// --- 管理员侧 API ---

/**
 * [管理员] 分页获取系统所有订单列表（可按状态筛选）
 * @param {object} params - 包含 current, pageSize, status 等信息
 */
export const listAdminOrdersByPageApi = (params) => {
    return request({
        url: '/api/order/admin/list/page',
        method: 'get',
        params: params
    })
}

/**
 * [管理员] 批准一个订单申请
 * @param {number} orderId
 */
export const approveOrderApi = (orderId) => {
    return request({
        url: `/api/order/approve/${orderId}`,
        method: 'post'
    })
}

// START: 新增代码
/**
 * [管理员] 拒绝一个订单申请
 * @param {object} data - 包含 id 和 reason 的对象: { id: number, reason: string }
 */
export const rejectOrderApi = (data) => {
    return request({
        url: '/api/order/reject',
        method: 'post',
        data: data
    })
}
// END: 新增代码